﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Com.Binaria.Core.Web;
using Com.Binaria.SISCOB.Funcional.DTO;

namespace Com.Binaria.SISCOB.Web.UI 
{

    public partial class ucCuentaCorriente : System.Web.UI.UserControl, IView<CuentaCorrienteFuncionalDTO>
    {
        #region Miembros de IView<CuentaCorrienteFuncionalDTO>

        public event ViewAddHandler OnAdd;
        public event ViewSaveHandler OnSave;

        public string Message
        {
            set { this.lblMessage.Text = value; }
        }

        public IList<CuentaCorrienteFuncionalDTO> Items
        {
            set { }
        }

        public CuentaCorrienteFuncionalDTO Item
        {
            set
            {
                if (value == null) return;
                //Loop por cada una de las propiedades
                ctlId.Value = value.Id.ToString();
                ctlNmrCuentaE.Text = value.NmrCuenta;
                ctlDescripcionE.Text = value.Descripcion;
                ctlEstaActivoE.Checked = value.EstaActivo;

            }
            get
            {
                CuentaCorrienteFuncionalDTO oItem = new CuentaCorrienteFuncionalDTO();
                if (!string.IsNullOrEmpty(ctlId.Value)) oItem.Id = Convert.ToInt32(ctlId.Value);
                if (!string.IsNullOrEmpty(ctlNmrCuentaE.Text)) oItem.NmrCuenta = ctlNmrCuentaE.Text;
                if (!string.IsNullOrEmpty(ctlDescripcionE.Text)) oItem.Descripcion = ctlDescripcionE.Text;
                oItem.EstaActivo = ctlEstaActivoE.Checked;

                return oItem;
            }
        }

        public IRelacion[] Relaciones
        {
            get
            {
                return null;
            }
        }

        public void ChangeMode(TypeAction Action)
        {
            pnlFind.Visible = false;
            pnlEdit.Visible = false;
            pnlGrid.Visible = false;
            //
            switch (Action)
            {
                case TypeAction.ALL:
                case TypeAction.FND:
                    pnlFind.Visible = true;
                    pnlGrid.Visible = true;
                    break;
                case TypeAction.EDI:
                case TypeAction.ADD:
                    pnlEdit.Visible = true;
                    break;
            }
        }

        public void DataBindRelaciones(TypeAction Action)
        {
            if (Relaciones == null) return;
        }
        #endregion

        #region EVENTOS PROPIOS DEL CONTROL
        protected void btnGrabar_Click(object sender, EventArgs e)
        {
            if (OnSave != null && OnSave(false))
            {
                Page.ClientScript.RegisterStartupScript(typeof(ucCuentaCorriente), "closeBox", "if (typeof(self.parent.$.Mantto) != null) {self.parent.$.Mantto.ActionEditClose('Informaci&oacute;n registrada satisfactoriamente');}", true);
            }
        }
        #endregion
    }
}
